namespace Cos.Core.NHibernate
{
    public class FormElementDataModel
    {
        public virtual bool? Boolean1 { get; set; }

        public virtual bool? Boolean1Live { get; set; }

        public virtual bool? Boolean2 { get; set; }

        public virtual bool? Boolean2Live { get; set; }

        public virtual string CSS { get; set; }

        public virtual string CssLive { get; set; }

        public virtual string Enum { get; set; }

        public virtual string EnumLive { get; set; }

        public virtual int FormId { get; set; }

        public virtual int FormPageId { get; set; }

        //public virtual IEnumerable<FormElementChoiceDataModel> FormElementChoices { get; set; }

        //public virtual IEnumerable<FormElementCultureDataModel> FormElementCultures { get; set; }

        public virtual int Id { get; set; }

        public virtual string InputType { get; set; }

        public virtual bool IsDeleted { get; set; }

        public virtual double? Long1 { get; set; }

        public virtual double? Long1Live { get; set; }

        public virtual double? Long2 { get; set; }

        public virtual double? Long2Live { get; set; }

        public virtual double? Long3 { get; set; }

        public virtual double? Long3Live { get; set; }

        public virtual double? Long4 { get; set; }

        public virtual double? Long4Live { get; set; }

        public virtual string Name { get; set; }

        public virtual int Ordering { get; set; }

        public virtual bool Required { get; set; }

        public virtual bool RequiredLive { get; set; }

       // public virtual IEnumerable<SubmissionValueDataModel> SubmissionValues { get; set; }

        public virtual string Text1 { get; set; }

        public virtual string Text1Live { get; set; }

        public virtual string Text2 { get; set; }

        public virtual string Text2Live { get; set; }

        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return false;
            }

            var model = obj as FormElementDataModel;

            return model != null && this.Id == model.Id;
        }

        public override int GetHashCode()
        {
            return this.Id.GetHashCode();
        }

    }
}
